主题
执行快速查询 - ExecuteScalar
函数简介
执行指定的SQL查询语句,返回结果集中第一行第一列的值,通常用于 COUNT、SUM、MAX 等聚合函数查询。
接口名称
ExecuteScalarDLL调用
c
int ExecuteScalar(long ola, long db, string sql);参数说明
| 参数名 | 类型 | 说明 |
|---|---|---|
| ola | 长整数型 | OLAPlug对象的指针,由 CreateCOLAPlugInterFace 接口生成。 |
| db | 长整数型 | 数据库连接句柄,由 OpenDatabase 接口生成。 |
| sql | 字符串 | 要执行的SQL查询语句。 |
示例
SDK 调用
cpp
#include "OLAPlugServer.h"
OLAPlugServer ola;
long db = ola.OpenDatabase("data/app.db", "");
if (db != 0) {
ola.ExecuteSql(db, "CREATE TABLE IF NOT EXISTS users(id INTEGER PRIMARY KEY, name TEXT, score REAL)");
ola.ExecuteSql(db, "INSERT OR REPLACE INTO users VALUES(1,'ola',98.5)");
int count = ola.ExecuteScalar(db, "SELECT COUNT(*) FROM users");
ola.CloseDatabase(db);
}csharp
using OLAPlug;
var ola = new OLAPlugServer();
long db = ola.OpenDatabase("data/app.db", "");
if (db != 0)
{
ola.ExecuteSql(db, "CREATE TABLE IF NOT EXISTS users(id INTEGER PRIMARY KEY, name TEXT, score REAL)");
ola.ExecuteSql(db, "INSERT OR REPLACE INTO users VALUES(1,'ola',98.5)");
int count = ola.ExecuteScalar(db, "SELECT COUNT(*) FROM users");
ola.CloseDatabase(db);
}python
from OLAPlugServer import OLAPlugServer
ola = OLAPlugServer()
db = ola.OpenDatabase("data/app.db", "")
if db != 0:
ola.ExecuteSql(db, "CREATE TABLE IF NOT EXISTS users(id INTEGER PRIMARY KEY, name TEXT, score REAL)")
ola.ExecuteSql(db, "INSERT OR REPLACE INTO users VALUES(1,'ola',98.5)")
count = ola.ExecuteScalar(db, "SELECT COUNT(*) FROM users")
ola.CloseDatabase(db)java
import com.olaplug.OLAPlugServer;
OLAPlugServer ola = new OLAPlugServer();
long db = ola.OpenDatabase("data/app.db", "");
if (db != 0) {
ola.ExecuteScalar(db, "SELECT COUNT(*) FROM users");
ola.CloseDatabase(db);
}cpp
var ola = com("OlaPlug.OlaSoft")
var db = ola.OpenDatabase("data/app.db", "")
if(db) {
ola.ExecuteScalar(db, "SELECT COUNT(*) FROM users");
ola.CloseDatabase(db)
}vbscript
Set ola = CreateObject("OlaPlug.OlaSoft")
db = ola.OpenDatabase("data/app.db", "")
If db <> 0 Then
ola.ExecuteScalar(db, "SELECT COUNT(*) FROM users");
ola.CloseDatabase(db)
End Iftext
.局部变量 ola, OLAPlug
ola.创建 ()
db = ola.OpenDatabase (“data/app.db“, ““)
.如果真 (db ≠ 0)
ola.ExecuteScalar(db, "SELECT COUNT(*) FROM users");
ola.CloseDatabase (db)
.如果真结束aardio
import OLAPlugServer;
var ola = OLAPlugServer();
var db = ola.OpenDatabase("data/app.db", "");
if(db){
ola.ExecuteScalar(db, "SELECT COUNT(*) FROM users");
ola.CloseDatabase(db);
}text
变量 ola <类型 = OLAPlugServer>
ola = 新建 OLAPlugServer
长整数 db = ola.OpenDatabase("data/app.db", "")
如果真 (db ≠ 0)
{
ola.ExecuteScalar(db, "SELECT COUNT(*) FROM users");
ola.CloseDatabase(db)
}cpp
#include "OLAPlugServer.h"
OLAPlugServer ola;
long db = ola.OpenDatabase("data/app.db", "");
if (db != 0) {
ola.ExecuteScalar(db, "SELECT COUNT(*) FROM users");
ola.CloseDatabase(db);
}原生 DLL 调用
cpp
long instance = CreateCOLAPlugInterFace();
long db = OpenDatabase(instance, "data/app.db", "");
if (db != 0) {
ola.ExecuteSql(db, "CREATE TABLE IF NOT EXISTS users(id INTEGER PRIMARY KEY, name TEXT, score REAL)");
ola.ExecuteSql(db, "INSERT OR REPLACE INTO users VALUES(1,'ola',98.5)");
int count = ola.ExecuteScalar(db, "SELECT COUNT(*) FROM users");
CloseDatabase(instance, db);
}csharp
using System.Runtime.InteropServices;
[DllImport("OLAPlug_x64.dll", CallingConvention = CallingConvention.StdCall)]
static extern long CreateCOLAPlugInterFace();
long instance = CreateCOLAPlugInterFace();
long db = OpenDatabase(instance, "data/app.db", "");
if (db != 0)
{
ola.ExecuteSql(db, "CREATE TABLE IF NOT EXISTS users(id INTEGER PRIMARY KEY, name TEXT, score REAL)");
ola.ExecuteSql(db, "INSERT OR REPLACE INTO users VALUES(1,'ola',98.5)");
int count = ola.ExecuteScalar(db, "SELECT COUNT(*) FROM users");
CloseDatabase(instance, db);
}python
from ctypes import CDLL, c_int, c_int64
ola = CDLL("OLAPlug_x64.dll")
ola.CreateCOLAPlugInterFace.restype = c_int64
instance = ola.CreateCOLAPlugInterFace()
db = ola.OpenDatabase(instance, b"data/app.db", b"")
if db:
ola.ExecuteSql(db, "CREATE TABLE IF NOT EXISTS users(id INTEGER PRIMARY KEY, name TEXT, score REAL)")
ola.ExecuteSql(db, "INSERT OR REPLACE INTO users VALUES(1,'ola',98.5)")
count = ola.ExecuteScalar(db, "SELECT COUNT(*) FROM users")
ola.CloseDatabase(instance, db)返回值
查询结果中第一行第一列的值。如果查询失败或结果集为空,返回 0。
注意事项
- 该函数适用于执行返回单个值的查询操作,例如
COUNT、SUM、MAX等聚合函数。 - 如果查询失败,可以通过 GetDatabaseError 函数获取详细的错误信息。
